package com.heima.kebiancanshu.per01;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

public class Stream06 {
    public static void main(String[] args) {
        //Stream流的收集操作
        /*使用stream流的方式操作完毕之后，把流中数据提交起来，用收集方法Rcollect(Collector collector)
        * 工具Collectors提供了具体的收集方法
        * public static <T>Collection toList() :把元素收集到List集合中
        * public static <T>Collection toSet() :把元素收集到 set集合中
        public static <T>Collection toMap(Function keyMappre,Function valueMapper) :把元素收集到 Map集合中
         练习：定义一个集合，并添加一些数据1，2，3，4，5，6，7，8，9，10
         * 将集合中的基数删除，只保留偶数
         * 遍历集合得到2，4，6，8，10
         * */
        ArrayList<Integer> list = new ArrayList<>();
        for (int i = 1; i < 10; i++) {
            list.add(i);
        }
//        list.stream().filter((Integer i) -> {
//            return i % 2 == 0;
//        }).forEach(s -> System.out.println(s));
        //filter负责过滤数据
        //Collect负责收集数据
        //获取流中剩余数据，不负责创建容器，也不负责把数据添加到容器中
       // Collectors.toList()在底层创建一个list集合，并把所有数据添加到list集合中
        List<Integer> list2 = list.stream().filter(i -> i % 2 == 0).collect(Collectors.toList());
        System.out.println(list2);
        Set<Integer> LI = list.stream().filter(e -> e % 2 == 0).collect(Collectors.toSet());
        System.out.println(LI);
    }
}
